1. Field of the Invention
The present invention relates generally to a system and method for managing the configuration of an application with respect to one or more environments.
2. Related Art
When an organization, such as a large corporation, develops software internally, referred to herein as enterprise software, typically it is deployed onto a server or a set of servers, often between multiple platforms in order to be used in different environments within the corporation. In order for the application to interact with each environment, certain settings or parameters of the application must be modified for each environment. The parameters are maintained in one or more configuration files of the application. The parameters are modified by accessing each relevant configuration file within the application and changing each parameter manually, typically by a system administrator or software programmer. The changes are saved and the application is deployed onto the particular environment.
Currently, two methods are used to modify the configuration files of an application. One method is to modify the configuration files during the “runtime” of the application where the configuration files are accessed and modified each time the application is deployed onto a new environment. The runtime method requires knowledge of the parameters related to each environment and manual generation or modification of the files prior to deployment. The second method is to modify the configuration files during the “build-time” of the application, where the configuration files are modified during the construction phase of the application, prior to deployment. The build-time method requires a user or administrator having to know in advance all of the settings for each environment the application may be deployed onto, and creating a configuration file for each potential environment at the time the software application is created, or built. Both conventional methods require modification of the configuration files at a file level. With multiple environments and multiple versions of an application, there can be a voluminous number of configuration file modifications that must be maintained for an enterprise software application to function seamlessly. Corporations continually deploy new enterprise applications onto their environments and update the applications with new versions. As discussed above, each deployment requires modifying the configuration files of the application manually, making this process easily subject to human error. Thus, managing the configuration files for every application in every environment can be cumbersome and costly.
Commonly, commercial software providers supply proprietary installation programs to support their own commercial applications, which modify the configuration files of the particular application as it installs, or during “run time.” For example, Microsoft supplies an installation program or “wizard” to manage deployment of Excel or Word. However, such installment programs may be used only for that specific version of the commercial software and for a particular environment, limiting the use of the installation program. A one-time deployment is not useful for a software application, such as an enterprise application, which is deployed onto multiple platforms, and which may be modified, or re-versioned, multiple times.
Thus, a need exists for an improved software configuration tool.